iT邦幫忙

2025 iThome 鐵人賽

DAY 14
0
AI & Data

告別每天的重複性任務:AI + n8n 中小企業自動化生存術系列 第 14

Day 14:每天 8 點自動發文到 FB,n8n Node 設定全攻略

  • 分享至 

  • xImage
  •  

昨天我們解決了最重要的前置步驟——取得 Facebook Token,讓 n8n 能夠具備「幫你發文」的權限。
今天,就要進入到實戰篇:我會完整示範如何設定每一個 n8n Node,包含定時觸發、讀取 Google Sheet、發佈貼文、回寫貼文 ID,甚至自動留言。
這樣設定好之後,每天早上 8 點,Facebook 就會自動幫你發文,再也不用小編手動一篇篇貼上去。
https://ithelp.ithome.com.tw/upload/images/20250928/20124621yWyRfCiPZ4.png

資料表設定

我用 Google Sheet 當作「社群發文規劃表」,表格大致長這樣:
https://ithelp.ithome.com.tw/upload/images/20250928/201246215KAaPnjUG8.png

每個欄位的用處

  • 日期:決定哪一天要發哪篇文章。
  • 內容:實際要發佈到 Facebook 的貼文內容。
  • 留言:發文後要自動附加的留言(例如 CTA、連結)。
  • 是否為今日:用公式 ARRAYFORMULA 判斷日期是否等於今天,讓 n8n 直接抓 TRUE 的資料,不用額外再過濾。
    ={"是否為今日"; ARRAYFORMULA(IF(A2:A<>"", INT(A2:A)=TODAY(), ))}
  • FB貼文ID:發文成功後,由 n8n 自動寫回,後續就能用這個 ID 查詢按讚、留言、觸及等成效數據。

這樣的表格設計,可以讓小編專注在寫內容,不必分心處理流程;排程日期與狀態一目了然,方便追蹤;發文成功後還能自動回寫貼文 ID,未來做成效分析或匯出報表都很輕鬆,同時 n8n 只需抓取「今日」的資料,效率更高。

Workflow 時區設定

在設定觸發器之前,建議先檢查整個 Workflow 的 Timezone。
因為 n8n 的排程時間會依照 Workflow 的時區來運行,如果沒改,預設會是 America/New_York,就會出現「表格判斷今天是 9/28,但 Workflow 其實跑在 9/27 晚上」這種錯位狀況。

點開右上方的 ⋯ 選單,會看到「Setting」,點下去會出現設定畫面,Timezone 選擇 Asia/Taipei 後按 Save。
確保每天早上 8 點觸發時,能跟 Google Sheet 裡用 TODAY() 計算的日期完全對齊。
https://ithelp.ithome.com.tw/upload/images/20250928/20124621CLnkbl1UAQ.png

1. Schedule Trigger

第一個 Node 原本的名稱是 Schedule Trigger。我把它改成 Trigger_Daily_0800,讓名稱更清楚地表達這個節點的功能——它是一個每天早上 8 點的觸發器。這樣的命名方式,未來如果我有多個排程(例如 12 點、20 點),就能快速區分,不會混淆。

在 n8n 中,Node 名稱是可以修改的:

  1. 點一下 Node 上方的⋯
  2. 選擇 Rename
  3. 輸入你想要的名稱,例如 Trigger_Daily_0800。

我之前在 n8n 的 Node 名稱輸中文時,常常打到一半就被切斷,字還沒組好就消失了。這應該是輸入法和介面不相容造成的,所以用英文命名會更穩定。
https://ithelp.ithome.com.tw/upload/images/20250928/20124621J8FY2GIyP9.png

在參數設定上,我把 Trigger 設為:

  • Trigger Interval:Days
    表示這個觸發器是以「天」為單位來重複執行。
  • Days Between Triggers:1
    代表每隔 1 天執行一次,也就是每天都會觸發。
  • Trigger at Hour:8
    指定在早上 8 點啟動流程。
  • Trigger at Minute:0
    表示在整點執行。

https://ithelp.ithome.com.tw/upload/images/20250928/201246216xvuSnXUqO.png

2. Google Sheets > Get row(s) in sheet

這個 Node 我重新命名成「Get_Today_Content」。
這個節點主要的設定如圖。
Credential 的部分我在 Day 10 已經講過怎麼設,所以這裡就不再重複。
在設定 Document 和 Sheet 時,可以用 From list 下拉選單直接選取,前提是表格已分享給這個 Google 帳號,就不用手動貼 ID,設定更直覺。

接下來我們的重點放在 Filters,在預設情況下,這個 Node 並不會自動帶有過濾條件,你需要手動按下 Add Filter,然後自己設定:

  • Column:是否為今日
  • Value:true

這樣做的效果是,n8n 只會撈出「是否為今日 = TRUE」的那一列資料,也就是今天要發的文章。
https://ithelp.ithome.com.tw/upload/images/20250928/20124621xYtlQjuJaj.png

**小提醒:**我在設定完 Node 後,都會先按一次 Execute step 測試,確認能正確抓到當天的資料。這樣做的好處是,如果欄位名稱、Filter 條件或表格權限有問題,可以第一時間發現並修正,不用等整條 workflow 跑失敗才回頭找錯。

3. Facebook Graph API

這個 Node 我重新命名成「FB_Post」。
Credential 的設定方法我已經在昨天 Day 13 詳細說過,這裡不再重複。其他關鍵參數如下:

  • HTTP Request Method:POST(因為是要新增一篇貼文)
  • Graph API Version:v23.0
  • Node:填寫你的粉專 Page ID
  • Edge:feed(發文用的端點)

Query Parameters 沒有預設,要自己新增:

  • 在 Node 參數裡,先點 Add option → Query Parameters。
  • 接著點 Add Parameter。
    • Name 輸入 message。
    • Value 輸入 {{ $json["內容"] }}
      或是在左側 Input 面板 展開 Get_Today_Content,找到「內容」欄位,直接用滑鼠拖拉到 Value 欄位,n8n 就會自動帶入正確的表達式。

https://ithelp.ithome.com.tw/upload/images/20250928/20124621mpdkRV14Nt.png

執行成功後,會回傳一個 id,這是 Facebook 上該貼文的唯一 ID。
後面我們會把它更新寫回 Google Sheet,作為之後追蹤互動數據的依據。


在 FB_Post 節點執行完成後,整個流程會同時分成兩條路徑:

  • 把貼文的 id 傳給 FB_Comment,用來針對剛剛發佈的文章自動留言。
  • 把同一個 id 傳給 Update_FB_ID,把發文結果回寫到 Google Sheet,方便後續追蹤數據。

這樣的設計能確保「發文 → 留言 → 回寫」三件事同時被串起來,資料也不會漏掉。
https://ithelp.ithome.com.tw/upload/images/20250928/20124621F6Af4wWKvj.png

4.1 Facebook Graph API > FB_Comment

參數設定

  • HTTP Request Method:POST
  • Node:{{$json["id"]}}/comments(直接引用上一個 FB_Post 的 ID)
  • Edge:comments
  • Query Parameters:
    • Name:message
    • Value:可以是 {{$json["留言"]}},也可以用拖拉方式,把 Google Sheet「留言」欄位拉進來。

Input

  • 這個 Node 會同時用到兩個來源:
    • FB_Post 的輸出(id = 發文 ID)
    • Get_Today_Content 的輸出(留言文字)

執行成功後,會回傳一個新的 id,這就是留言在 Facebook 上的唯一 ID。
https://ithelp.ithome.com.tw/upload/images/20250928/20124621HDONMUqWSm.png

4.2 Update row in sheet → Update_FB_ID

參數設定
設定 Document 和 Sheet 時,可以用 From list 下拉選單直接選取。

  • Mapping Column Mode:選 手動對應 (Map Each Column Manually),讓我們能自己指定要更新的欄位。
  • Column to match on:選擇 row_number。這是 Get_Today_Content 節點輸出裡的列號,透過它來精準鎖定要更新的那一行。
  • Values to Update:
    • row_number (using to match):輸入 {{ $('Get_Today_Content').item.json.row_number }},用前一個節點的列號當作比對依據。
    • FB貼文ID:輸入 {{ $json.id }},把 FB_Post 的輸出(貼文 ID)寫回到「FB貼文ID」欄位。

https://ithelp.ithome.com.tw/upload/images/20250928/20124621KTFnQu4KC1.png

執行成功後,「社群發文規劃表」裡對應的那一列的FB貼文ID 欄位會被更新。

設定好整個工作流後,別忘了上方要打開將整個工作流「Active」,每天早上 8 點 n8n 就會自動幫你發 FB 貼文了!

小結

今天這篇,我把整個 自動發文流程 寫完了:每天早上 8 點自動觸發 → 從 Google Sheet 抓當天文章 → 發到 Facebook → 回寫貼文 ID → 自動留言。
有了這個流程,小編再也不用每天登入後台、複製貼上,省下來的時間就能拿去專心想內容。

但說到這裡,應該有人心裡會冒出這個問題:那些每天要發的文章,到底怎麼來的?
我這次的案例,其實是先把自己寫過的長文交給 AI,請它幫我做摘要、拆成段落,才變成每天的貼文素材。也就是說,AI 不只可以幫忙後端自動化,前端的內容準備,其實也能省力。

明天的文章,我就要帶你看這一段:怎麼用 AI 幫你把文章濃縮成貼文。這樣從內容到發文,整個工作流就真正完整起來。

如果你覺得今天的案例有幫助,歡迎在下方留言交流,或分享給也想做社群自動化的朋友。
別忘了追蹤系列文,明天我們會進一步聊 AI 自動生成貼文的實戰方法。


上一篇
Day 13:每天切換各社群平台很累?n8n 幫你自動化發文
系列文
告別每天的重複性任務:AI + n8n 中小企業自動化生存術14
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言